package pe.com.rimac.portal.service.facturacion.trama;

import org.apache.commons.lang.StringUtils;

/**
 * @author Synopsis S.A
 *
 */
public class BusquedaPersonaRequest
{
	private static final String TRAMA_OPEN = "<TRAMA>";
	private static final String TRAMA_CLOSE = "</TRAMA>";
	private static final String PARAMETERS_OPEN = "<PARAMETERS>";
	private static final String PARAMETERS_CLOSE = "</PARAMETERS>";
	private static final String PROCESO = "<PROC>?</PROC>";
	private static final String TIPO_BUSQUEDA = "<TIPBUSQ>?</TIPBUSQ>";
	private static final String TIPO_RELACION = "<TIPREL>?</TIPREL>";
	private static final String TIPO_DOCUMENTO = "<CODTIPDOC>?</CODTIPDOC>";
	private static final String NUMERO_DOCUMENTO = "<NUMIDDOC>?</NUMIDDOC>";
	private static final String NUMID = "<NUMID>?</NUMID>";
	private static final String NOMBRE = "<NOMBRE>?</NOMBRE>";
	private static final String APELLIDO_PATERNO = "<APEPAT>?</APEPAT>";
	private static final String APELLIDO_MATERNO = "<APEMAT>?</APEMAT>";
	private Header header;
	private String tipoDocumento;
	private String numeroDocumento;

	public BusquedaPersonaRequest(Header header)
	{
		this.header = header;
	}

	public String getTipoDocumento()
	{
		return tipoDocumento;
	}

	public void setTipoDocumento(String tipoDocumento)
	{
		this.tipoDocumento = tipoDocumento;
	}

	public String getNumeroDocumento()
	{
		return numeroDocumento;
	}

	public void setNumeroDocumento(String numeroDocumento)
	{
		this.numeroDocumento = numeroDocumento;
	}
	
	public String build()
	{
		StringBuilder builder = new StringBuilder();
		builder.append(TRAMA_OPEN);
		builder.append(header.build());
		builder.append(PARAMETERS_OPEN);
		
		// Busqueda por tipo de documento
		builder.append(StringUtils.replace(PROCESO, "?", "VEH"));
		builder.append(StringUtils.replace(TIPO_BUSQUEDA, "?", "1"));
		builder.append(StringUtils.replace(TIPO_RELACION, "?", "5"));
		builder.append(StringUtils.replace(TIPO_DOCUMENTO, "?", getTipoDocumento()));
		builder.append(StringUtils.replace(NUMERO_DOCUMENTO, "?", getNumeroDocumento()));
		builder.append(StringUtils.replace(NUMID, "?", StringUtils.EMPTY));
		builder.append(StringUtils.replace(NOMBRE, "?", StringUtils.EMPTY));
		builder.append(StringUtils.replace(APELLIDO_PATERNO, "?", StringUtils.EMPTY));
		builder.append(StringUtils.replace(APELLIDO_MATERNO, "?", StringUtils.EMPTY));
		
		builder.append(PARAMETERS_CLOSE);
		builder.append(TRAMA_CLOSE);
		
		return builder.toString();
	}
}